其他
最强配色R包,1个包,2100来个调色板!
首先今天推荐一个分享R语言干货的优质公众号——小明的数据分析笔记本
公众号主要分享:
1、R语言和python做数据分析和数据可视化的简单小例子;
2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;
3、生物信息学入门学习资料及自己的学习笔记!
ggplot2是目前主流的绘图R包,有着丰富的扩展包。今天来推荐一个极其强大的配色R包——paletteer包。
据R包作者介绍,这个包收集了52个R包的2100种调色板,R用户可以通过paletteer包来直接调用其他R包的调色板。
下面来学习下怎么使用这个R包。
1. 安装和加载R包
安装可以直接从CRAN上安装。
install.packages("paletteer")
library(paletteer)
2. 探索paletteer包
在使用paletteer包绘制图形前先看看paletteer包的调色板情况。
2.1 离散型调色板
palettes_d_name是一个包含了R包和离散型调色板的数据集。
d_palettes <- palettes_d_names
d_palettes
可以看到数据集共有1788行,包含4个变量,分别表示R包、调色板、调色板中的颜色数量、调色板类型等。
2.2 连续型调色板
palettes_c_name是一个包含了R包和连续型调色板的数据集。
c_palettes <- palettes_c_names
c_palettes
可以看到数据集共有315行,包含3个变量,分别表示R包、调色板、调色板类型等。
3. paletteer包的用法
3.1 主要函数
paletteer包使用起来很简单,包中有4个主要的函数。
函数用法:
# 离散型调色板
scale_color_paletteer_d(palette, direction = 1, dynamic = FALSE, ...)
scale_fill_paletteer_d(palette, direction = 1, dynamic = FALSE, ...)
# 连续型调色板
scale_color_paletteer_c(palette, direction = 1, ...)
scale_fill_paletteer_c(palette, direction = 1, ...)
scale_color_paletteer_binned(palette, direction = 1, ...)
scale_fill_paletteer_binned(palette, direction = 1, ...)
palette # 调色板名称的字符串,格式必须是packagename::palettename
direction # 取值为1或-1,为-1则逆转调色板的颜色
3.2 查看调色板具体颜色
我们可以查看每个调色板的具体颜色。
paletteer_c("scico::berlin", 10)
paletteer_d("nord::frost")
paletteer_d("wesanderson::Royal1", 4)
paletteer_d("Redmonder::dPBIPuOr", 10, type = "continuous")
pal <- paletteer_d("basetheme::clean")
pal %>%
fct_inorder() %>%
tibble(pal = .) %>%
gt::gt() %>%
gt::data_color(columns = vars(pal),
colors = as.character(pal))
4. paletteer包实战
paletteer包主要用于ggplot2图形,所以我们绘制ggplot2图形来进行演示。
4.1 离散型调色板
先绘制个基础的条形图。
library(ggplot2)
base_d <- ggplot(mpg, aes(class, fill = drv)) +
geom_bar()
base_d
ggsci包是一个很优秀的调色板,我们可以在paletteer包中使用ggsci包的调色板。
base_d + scale_fill_paletteer_d("ggsci::default_nejm")
# 调色板可以自动补全名称
下面再绘制个散点图看看。
library(gcookbook) # 为了使用数据集
base_c <- ggplot(heightweight, aes(ageYear, heightIn, colour=sex)) +
geom_point(size = 3.5)
base_c
base_c + scale_color_paletteer_d("basetheme::ink")
base_c + scale_color_paletteer_d("LaCroixColoR::Orange")
4.2 连续型调色板
先绘制个散点图。
ggplot(mtcars, aes(x=wt, y=mpg, colour=cyl)) +
geom_point(size = 3.5) +
scale_color_paletteer_c("ggthemes::Red-Gold")
ggplot(mtcars, aes(x=wt, y=mpg, colour=cyl)) +
geom_point(size = 3.5) +
scale_color_paletteer_c("ggthemes::Classic Area Green")
参考资料
paletteer包帮助文件 https://evamaerey.github.io/ggplot2_grammar_guide/paletteer.html#1
《完》